package CapaDatos.listas;

import CapaDatos.Persona;
import java.util.List;
import java.util.TreeSet;
import java.util.Comparator;
import java.util.Iterator;

public class ListaAcompanantes
{
    private TreeSet <Persona> lista;
    private Comparator comparator;

    public ListaAcompanantes()
    {
        comparator = new CompararPersonas();
        lista = new TreeSet(comparator);
    }

    public ListaAcompanantes(List acompanantes)
    {
        comparator = new CompararPersonas();
        lista = new TreeSet(comparator);
        lista.addAll(acompanantes);
    }

    public boolean agregar (Persona objeto) {
        return lista.add(objeto);
    }

    public boolean actualizar (Persona acompanante) {
        if (!eliminar (acompanante.getCedula()))
            return false;

        return agregar(acompanante);
    }

    public Persona buscarCedula(String cedula) {
        Persona auxiliar = null;
        Iterator iterator = lista.iterator();

        while (iterator.hasNext())
        {
            auxiliar = (Persona) iterator.next();

            if (auxiliar.getCedula().equals(cedula))
                return auxiliar;
        }

        return null;
    }

    public boolean eliminar (String cedula) {
        Persona auxiliar = buscarCedula (cedula);

        if (auxiliar == null)
            return false;

        return lista.remove(auxiliar);
    }

    public int cantidad() {
        return lista.size();
    }

    public Persona[] array() {
        return lista.toArray(new Persona[0]);
    }
}
